1. Field of the Invention
This invention relates to data storage and, more particularly, to techniques for performing recoverable mirroring in data storage environments that employ asymmetric distributed block virtualization.
2. Description of the Related Art
Many business organizations and governmental entities rely upon applications that access large amounts of data, often exceeding a terabyte or more of data, for mission-critical applications. Often such data is stored on many different storage devices, which may be centrally located or distributed throughout an enterprise. Such storage devices may be heterogeneous in nature, including many different types of devices from many different manufacturers.
Configuring individual applications that consume data, or application server systems that host such applications, to recognize and directly interact with each different storage device that may possibly be encountered in a heterogeneous storage environment would be increasingly difficult as the environment scaled in size and complexity. Therefore, in some storage environments, specialized storage management software and hardware may be used to provide a more uniform storage model to storage consumers. Such software and hardware may also be configured to add storage features not present in individual storage devices to the storage model. For example, features to increase fault tolerance, such as data mirroring, snapshot/fixed image creation, or data parity, as well as features to increase data access performance, such as disk striping, may be implemented in the storage model via hardware or software.
However, not all data consumers may require or benefit from the same types of features that might be presented by the storage model. For example, some types of applications may require a high degree of data reliability but are not particularly performance sensitive, while the reverse may be true of other applications. Further, not all data consumers may require access to the same data. For example, a database application running on one server may require different data than an accounting application running on a different server. Requiring that all storage features (such as mirroring, striping, snapshots, etc.) and/or all data be available to each consumer in a complex storage environment may potentially result in suboptimal use of resources.